import api from './axios';

/**
 * PUA检测相关的API服务
 */
const puaService = {
  /**
   * 检测文本是否包含PUA内容
   * @param {string} content - 要检测的文本内容
   * @returns {Promise} - 返回检测结果
   */
  detectPUA: async (content) => {
    return api.post('/pua/detect', { content });
  },

  /**
   * 获取PUA模式类别列表
   * @returns {Promise} - 返回PUA模式类别列表
   */
  getPUACategories: async () => {
    return api.get('/pua/categories');
  },

  /**
   * 获取PUA模式列表
   * @param {string} category - 可选的类别过滤
   * @returns {Promise} - 返回PUA模式列表
   */
  getPUAPatterns: async (category = '') => {
    const params = category ? { category } : {};
    return api.get('/pua/patterns', { params });
  },

  /**
   * 获取PUA教育资源
   * @returns {Promise} - 返回PUA教育资源列表
   */
  getEducationalResources: async () => {
    return api.get('/pua/resources');
  },

  /**
   * 分析聊天历史中的PUA趋势
   * @param {string} contactId - 联系人ID
   * @param {number} maxMessages - 最大分析消息数量
   * @returns {Promise} - 返回分析结果
   */
  analyzeHistory: async (contactId, maxMessages = 100) => {
    return api.post('/pua/analyze_history', { contact_id: contactId, max_messages: maxMessages });
  },

  /**
   * 深度分析PUA内容并提供个性化应对策略
   * @param {string} text - 待分析的文本内容
   * @param {string} ageGroup - 用户年龄组 (adult, teen, elderly)
   * @param {string} relationshipContext - 关系背景 (dating, friendship, professional, family)
   * @param {string} priority - 分析优先级 (safety, education, balanced)
   * @param {Array} contextMessages - 上下文消息列表
   * @returns {Promise} - 返回深度分析结果和个性化建议
   */
  analyzeAndRespond: async (text, ageGroup = null, relationshipContext = null, priority = 'balanced', contextMessages = null) => {
    const params = { text };
    
    if (ageGroup) params.age_group = ageGroup;
    if (relationshipContext) params.relationship_context = relationshipContext;
    if (priority) params.priority = priority;
    if (contextMessages) params.context_messages = contextMessages;
    
    return api.post('/pua/analyze-and-respond', params);
  },

  /**
   * 分析对话历史中的PUA模式和发展趋势
   * @param {number} contactId - 联系人ID (与sessionId二选一)
   * @param {number} sessionId - 会话ID (与contactId二选一)
   * @param {string} timeframe - 分析时间范围 (all, recent, last_week, last_month)
   * @param {number} messageLimit - 最大分析消息数量
   * @param {string} relationshipContext - 关系背景 (dating, friendship, professional, family)
   * @returns {Promise} - 返回对话分析结果
   */
  analyzeConversation: async (params = {}) => {
    return api.post('/pua/analyze-conversation', params);
  }
};

export default puaService; 